package com.duoec.doc.service.impl.mock.base;

import com.duoec.doc.entity.MockConfigItem;
import com.duoec.doc.helper.MockHelper;
import com.duoec.doc.service.IBaseTypeMocker;
import com.duoec.doc.service.IMocker;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Random;

/**
 * @author xuwenzhen
 * @date 2020/2/1
 */
@Service
public class EnumBaseTypeMocker implements IMocker, IBaseTypeMocker {
    /**
     * mock配置输出的响应
     *
     * @param item 配置
     * @return
     */
    @Override
    public String mock(MockConfigItem item) {
        if (!MockHelper.available(item)) {
            return null;
        }

        String value;
        if (item.getMockType().equals(1)) {
            // 随机
            List<String> enumValues = item.getMockValueRandomList();
            value = enumValues.get(new Random().nextInt(enumValues.size()));
        } else {
            value = item.getValue();
        }
        return "\"" + value + "\"";
    }

    /**
     * 可处理的基础类型：0=number 1=string 2=boolean 3=byte 4=date 5=enum 6=char
     *
     * @return 类型
     */
    @Override
    public Integer getMockType() {
        return 5;
    }
}
